

#ifndef LOADER_H
#define LOADER_H

#include "comm/boot_info.h"
#include "comm/types.h"
#include "comm/cpu_instr.h"
#include "comm/elf.h"

// 添加汇编文件中的全局标号，标号及函数，c语言函数实现及标号的跳转，当然须保存现场及携带参数
void protect_mode_entry(void);

    typedef struct SMAP_entry
{

    uint32_t BaseL; // base address uint64_t
    uint32_t BaseH;
    uint32_t LengthL; // length uint64_t
    uint32_t LengthH;
    uint32_t Type; // entry Type，值为1时表明为我们可用的RAM空间
    uint32_t ACPI; // extended, bit0=0时表明此条目应当被忽略

} __attribute__((packed)) SMAP_entry_t;

// extern var boot_info from loader_16.c
extern boot_info_t boot_info;

#endif

